import {Meteor} from 'meteor/meteor';
import { user } from '../collections/index';
// import { client } from '../libs/redis';
const bcrypt = require('bcryptjs')
// 随机字符串
const salt = bcrypt.genSaltSync(10)
// 邮箱正则
const email = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/

Meteor.methods({
    // 注册
    'user.create':function(data){
        const find = user.findOne({email:data.email})
        if(find){
            throw new Meteor.Error('该邮箱已注册')
        }else{
            data.password = bcrypt.hashSync(data.password, salt)
            return user.insert(data)
        }
       
    },
    // 登录
    'user.login':function(data){
        if(email.test(data.weNum)){
            if(user.find({email:data.weNum}).count()!==0){
                let getUser = user.findOne({email:data.weNum})
                const isOk = bcrypt.compareSync(data.password, getUser.password)
               if(isOk){
                    // client.set('userId',getUser[0]._id)
                    // client.expire('userId',60*60*72)
                    return getUser
               }
            }
            else{
                throw new Meteor.Error('账号不存在')
            }  
        }
        else{
            if(user.find({weNum:data.weNum}).count()!==0){
                let getUser = user.findOne({weNum:data.weNum})
                const isOk = bcrypt.compareSync(data.password, getUser.password)
               if(isOk){
                    // client.set('userId',getUser[0]._id)
                    // client.expire('userId',60*60*72)
                    return getUser
               }
            }
            else{
                throw new Meteor.Error('账号不存在')
            }
        }
    },
    // 更新昵称
    'user.updateNickname':function(data){
        return user.update({_id:data.userId},{$set:{nickname:data.nickname}})
    },
    // 更新微信号
    'user.updateWeNum':function(data){
        return user.update({_id:data.userId},{$set:{weNum:data.weNum}})
    },
    // 根据类型查找好友
    'user.findByType':function(data){
        if(email.test(data)){
            if(user.find({email:data}).count()!==0){
               return user.findOne({email:data})
            }
            else{
                throw new Meteor.Error('账号不存在')
            }   
        }
        else{
            if(user.find({weNum:data}).count()!==0){
                return user.findOne({weNum:data})
             }
             else{
                 throw new Meteor.Error('账号不存在')
             }  
        }
    },
    // 根据id查找
    'user.findByID':function(data){
            if(user.find({_id:data}).count()!==0){
               return user.findOne({_id:data})
            }
            else{
                throw new Meteor.Error('账号不存在')
            }   
        },
    //零钱金额
    'user.updatePay':function(data){
        return user.update({_id:data.id},{$set:{pay:data.pay}})
    }

    
})